//
//  PreferencesGeneralView.m
//
//	Serial Remote for Mac - Control mac actions via serial commands
//	Copyright (C) 2010  Jeremiah McConnell
//
//	This program is free software: you can redistribute it and/or modify
//	it under the terms of the GNU General Public License as published by
//	the Free Software Foundation, either version 3 of the License, or
//	(at your option) any later version.
//
//	This program is distributed in the hope that it will be useful,
//	but WITHOUT ANY WARRANTY; without even the implied warranty of
//	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//	GNU General Public License for more details.
//
//	You should have received a copy of the GNU General Public License
//	along with this program.  If not, see <http://www.gnu.org/licenses/>.
//

#import "PreferencesGeneralViewController.h"

@implementation PreferencesGeneralViewController

#pragma mark -
#pragma mark Prefrence Pane Methods

- (NSString *)title
{
	return NSLocalizedString(@"General", @"Title of 'General' preference pane");
}

- (NSString *)identifier
{
	return @"PreferencesGeneralPane";
}

- (NSImage *)image
{
	return [NSImage imageNamed:@"NSPreferencesGeneral"];
}

#pragma mark -
#pragma mark Action Methods

- (IBAction)loginItemsWasSelected:(id)sender
{
	// Add to login items if selected
	LSSharedFileListRef loginListRef = LSSharedFileListCreate(NULL, kLSSharedFileListSessionLoginItems, NULL);
	
	
	if ([loginItemsButton state] == NSOnState) {
		// Add to login items

		LSSharedFileListInsertItemURL(loginListRef,
									  kLSSharedFileListItemLast,
									  NULL, 
									  NULL,
									  (CFURLRef)[NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]], 
									  NULL, 
									  NULL);
	}
	else {
		// Remote from login items
		NSURL *appPath;
		UInt32 seedValue;
		
		NSArray  *loginItemsArray = (NSArray *)LSSharedFileListCopySnapshot(loginListRef, &seedValue);
		for ( id item in loginItemsArray ) {
			LSSharedFileListItemRef itemRef = (LSSharedFileListItemRef)item;
			if ( LSSharedFileListItemResolve(itemRef, 0, (CFURLRef*) &appPath, NULL) == noErr ) {
				
				if ( [appPath isEqual:[NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]]] ) {
					LSSharedFileListItemRemove(loginListRef, itemRef);
				}
				
			}
		}
	}
}

@end
